BEAM (machine virtuelle)

Un article de Wikipédia, l'encyclopédie libre.

BEAM est la machine virtuelle au cœur de la plateforme Open Telecom (OTP) Erlang[1]. BEAM fait partie de l'environnement d'exécution Erlang (Erlang Run-Time System, ERTS), qui compile le code source Erlang en bytecode, qui est ensuite exécuté sur BEAM[2],[3]. Les fichiers de bytecode BEAM portent l'extension de fichier .beam[4].

À l'origine, BEAM était l'abréviation de Bogdan's Erlang Abstract Machine, du nom de Bogumil « Bogdan » Hausman, qui a écrit la version originale. Aujourd’hui, elle peut signifier à Björn's Erlang Abstract Machine, d'après Björn Gustavsson, qui a écrit et maintient la version actuelle[1],[5]. Les deux développeurs ont travaillé sur le système chez Ericsson[6], [7].

Le prédécesseur de BEAM était JAM (Joe's Abstract Machine), qui était la première machine virtuelle pour le langage Erlang et a été écrite par Joe Armstrong.

BEAM ne s'appuie pas sur les threads du système d'exploitation pour le multithreading, mais implémente son propre système multitâche. Il est disponible pour Windows, Mac OS X et différentes distributions Linux.[réf. nécessaire]

Langages BEAM[modifier | modifier le code]

Bien que la machine virtuelle BEAM ait été créée pour Erlang, plusieurs autres langages ont été conçus pour elle ou portés pour s'exécuter dessus. Le plus populaire d'entre eux est Elixir, qui a reçu plus de réponses qu'Erlang lui-même dans l'enquête Stackoverflow 2023[8]. D’autres exemples notables incluent :

  • Clojerl[9], un port de Clojure vers BEAM ;
  • Cuneiform[10], un langage pour l'analyse de données scientifiques à grande échelle ;
  • Gleam[11], un langage fonctionnel typé statiquement pour BEAM ;
  • LFE[12], Lisp Flavored Erlang, une interface Lisp pour le compilateur Erlang ;
  • Luerl[13], Lua sur BEAM, conçu et implémenté par l'un des créateurs d'Erlang.

Voir également[modifier | modifier le code]

Références[modifier | modifier le code]

  1. a et b (en) « The Erlang Runtime System », sur happi.github.io (consulté le )
  2. (en) Logan Martin, Erlang and OTP in action, Stamford, CT, Manning Pub, (ISBN 9781933988788, OCLC 747046900)
  3. (en-US) « Most Popular Programming Languages of 2018 », Elite Infoworld,‎
  4. (en) Kessin Zachary., Building web applications with Erlang, Beijing, O'Reilly, (ISBN 9781449309961, OCLC 802882644)
  5. (en) « erlang/otp », sur github.com/erlang (consulté le )
  6. (en) Kerjouan, « Serialization series — Do you speak Erlang ETF or BERT? (part 1) », sur medium.com/@niamtokik, (consulté le )
  7. (en) « Erlang BEAM Instruction Set », sur www.cs-lab.org (consulté le )
  8. (en) « Stack Overflow Developer Survey 2023 », sur Stack Overflow (consulté le )
  9. (en) Facorro, « Clojerl », sur GitHub (consulté le )
  10. (en) « Cuneiform » (consulté le )
  11. « Gleam » (consulté le )
  12. « LFE », sur GitHub (consulté le )
  13. « luerl », sur GitHub (consulté le )

Liens externes[modifier | modifier le code]